#pragma once

#include "Layout.hpp"




namespace Engine
{
	namespace Ui
	{
		class ENGINE_UI_API VerticalLayout
			: public Layout
		{
		protected:

			VerticalLayout(boost::weak_ptr<Widget> attached);

		public:

			SHARED(VerticalLayout);
			MAKE_SHARED1(VerticalLayout, boost::weak_ptr<Widget>);
			virtual ~VerticalLayout();



			/**
			 * Calculate the minimum possible size.
			 */
			intsize2 calculateMinimumSize() const;

		private:

			/**
			 * Calling this function will reposition all children
			 * accordingly and will also update attached widget's
			 * size, when necessary.
			 */
			void repositionChildren();
		};
		///////////////////////////////////////////////////////////////////////////////////////////
	}
	///////////////////////////////////////////////////////////////////////////////////////////////
}
///////////////////////////////////////////////////////////////////////////////////////////////////
